import { nodeResolve } from "@rollup/plugin-node-resolve";
import commonjs from "@rollup/plugin-commonjs";
import terser from "@rollup/plugin-terser";
import vue from "rollup-plugin-vue";
import babel from "@rollup/plugin-babel"; // 新增：引入 Babel 插件

export default {
  external: ["vue"],
  input: "src/component/index.js", // 入口文件
  output: [
    {
      file: "lib/bundle.common.js", // 输出文件
      name: "bundle",
      format: "cjs",
      exports: "auto", // 新增：明确导出模式
    },
    {
      file: "lib/bundle.esm.js", // 输出文件
      name: "bundle",
      format: "es", // 输出格式（ES 模块）
    },
    {
      file: "lib/bundle.esm.min.js", // 输出文件
      name: "bundle",
      format: "es", // 输出格式（ES 模块）
      plugins: [terser()],
    },
  ],
  plugins: [
    nodeResolve({
      extensions: [".vue", ".js", ".json"],
    }), // 解析
    vue({ compileTemplate: true, css: false }),
    babel({
      // 指定需要处理的文件类型（关键：包含 .vue 文件）
      extensions: [".js", ".vue"],
      presets: [["@babel/preset-env", { modules: false }]],
      plugins: [
        "babel-plugin-transform-vue-jsx",
        "@babel/plugin-transform-runtime",
      ],
      babelHelpers: "runtime", // 避免重复注入 Babel helper（与 Babel 版本兼容）
    }),
    commonjs(), // 转换 CommonJS → ES 模块
  ],
};
